somewhere to talk about random ideas and projects like everyone else

stuff

#visual basic

Controlling A Native App from a Javascript Desktop 29 August 2008

Well, I worked on a sort of VNC-like solution to controlling native desktop applications from a remote PC. It’s an interesting concept, I settled with something less than easy to use, and less than really feasable. It’s a Proof of concept, and it’s likely I won’t work on it again (Like ForkSwif).

It is an application (module) on a hacked Ext 2.0 Desktop example that uses Ajax (Polling) to query a local PHP proxy to query a remote desktop. The remote desktop is running some software (powered by .NET sadly…) that captures the window’s contents, does a diff to see if there are modifications and where (only sends updates to changed parts of the screen, sorta like VNC). It base64 encodes it and sends it along HTTP to the proxy, which sends it to the javascript client.

The client can send events to be repeated on the remote desktop, currently only left mousedown and mouseup (so, basically only clicking), but using the Keyboard should be easy enough.

I imagine that a more feasable option is to create a javascript X11 client, taking proxied connections to a X session under SSH so it is better with window-specificness, and an overall more stable platform, so you could also run multiple applications simultaneously on the desktop.

here’s an early screenshot:

Controlling A native desktop app from a javascript desktop
Controlling A native desktop app from a javascript desktop
Controlling A native desktop app from a javascript desktop (early build)

Files here:

http://antimatter15.110mb.com/misc/coolstuff.zip

Extract desktop2 to your Apache server, start Windows Calculator (or another app of your choosing). Run Screen.exe, type the app title, press “Get Handle” and check the “Run Server” box. Navigate to the desktop.html (on your PHP-enabled apache), and start the “NV Window” app.

To be able to control the app, you have to set it to your network ip (not localhost) on a VM or a different computer. and configure sample.js at line 191.

proxy: "gdat.php?url=",
updateurl : "[http://localhost:12345](http://localhost:12345/)",
baseurl : "[http://localhost:12345/base](http://localhost:12345/base)",
showimg : false,
uinterval: 1000,
updater: null,
xoffset: -8,
yoffset: -28,

change localhost to the server’s IP. And tick “Control Desktop”

Note that you need firebug.

If i can think of a name for the app, i’ll be sure to creakte a google code project for it. so if anyone want’s the source, think of a name for it.


Desktop Flash IDE ForkSwif Released 23 January 2008

This was a really small project of mine. It is (going to be) open source, but I’ll probably never work on it again. It has a much larger number of tools than Ajax animator. The editing will be much a relief, and so much better than rich draw. Sadly, it has no tweening, frame duplicating, effects, or any of the features in Ajax animator.

It is currently only for Windows with .net framework 2.0 installed, Mono/Wine is not tested (but Mono has to be used with wine, as it calls swfmill.exe (win32 binary) for flash generation.

About the name:Liveswif has been a great piece of software, probably the best (free) flash IDE ever. Sadly, it has been discontinued for since years ago. The community has been working on something called “OpenSwif” it was supposed to be the successor to the famed liveswif. The problems were, that liveswif was proprietary (freeware), so they had no codebase to begin on. Ajax Animator started out as something for the developers of OpenSwif to get inspiration off of, and just one of my random ideas. As of now, OpenSwif still has no released imagery/source/binaries; there is only one developer, and no signs of active development. I just decided one day, discovering some information to be mentioned in the next paragraph, that I could really do things a lot better than they were doing now. I, for once, actually utilized the wonders of open source, forking. As everyone on the OpenSwif team were acting as if OpenSwif was proprietary.

I, reading up on swfmill, discovered it had something called SVG import, meaning, it could read a svg file to convert into SWF. With this realization, I quickly searched VB.NET (my first programming language, btw, but I like JS more now) SVG Editor. Too much dismay, no VB.NET SVG editors existed, but I found one coded in C#. I made a TODO list that basically said: Make Timeline, Attach Timeline, Hack SVG Paint, and attach Swfmill. It was with much less work than I expected. Being a crappy c# coder, I made most of it in VB.net, and converted it to c# (using online tools). The timeline was pretty easy (20 lines of vb code), which fit easily on the SVGPaint layout. Then I hacked the saving mechanism to save automatically (without user interference), which was as simple as deleting all the references to message boxes (well, in docmanager.cs). I built a quick and dirty swfmill launcher program that generated the necessary markup. And sadly, it didn’t work. After a bit of experimentation, I discovered that you have to attach an ID to every svg element, which the program didn’t do. I just had to add “id=shape”+rand.Next(9999999).toString() somewhere and voila, I finished the flash ide. All in less than 50 lines of code. Now all I needed to do is to rebrand it (evilest, no…um… I mean easiest part).

In retrospect, I probably wrote more in this essay (article or whatever) than all the work I spent on the ForkSwif project.

Read more at:

http://www.pryjon.com/liveswifers/forums/viewtopic.php?t=1377 http://www.pryjon.com/liveswifers/forums/viewtopic.php?t=1364 http://code.google.com/p/forkswif/

What the heck is wrong with me and writing such long essays for random news topics?!?! I should spend this effort on homework…..